From 718b877f80b4fd7be1dc6800dc8428536d64cbc8 Mon Sep 17 00:00:00 2001 From: Valentin Dobidaytis Date: Wed, 2 Jun 2021 20:46:32 +0300 Subject: [PATCH] Updated version v2.0.3 --- CHANGELOG.md | 25 +++++++++++++++++++++++++ build.gradle | 4 ++-- future_changes.md | 16 +--------------- js-package/distr/lets-plot.js | 2 +- python-package/lets_plot/_version.py | 2 +- 5 files changed, 30 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0410c416fd2..b9dcbae836f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.0.3] - 2021-06-02 + +### Added + +- In tooltip customization API: + - `layer_tooltips(variables)` - the new parameter `variables` defines a list of variable names, which values will be placed line by line in the general tooltip. + See: [Tooltip Customization](https://github.com/JetBrains/lets-plot/blob/master/docs/tooltips.md). + +### Changed + +- CDN: Lets-Plot JavaScript library is now served via [JSDELIVR](https://www.jsdelivr.com/?docs=gh) (was CDNJS): +> https://cdn.jsdelivr.net/gh/JetBrains/lets-plot@v2.0.3/js-package/distr/lets-plot.min.js + +### Fixed + +- Removed the last dependency on bintray JCenter ([commit](https://github.com/JetBrains/lets-plot/commit/7bcd38e000a4952b83269ef4ebac0b7d826dea6a)). +- geom_boxplot: should be possible to create boxplot without specifying x-series [[#325](https://github.com/JetBrains/lets-plot/issues/325)] +- geom_hline: graph plotted outside of coordinate plane visible part [[#334](https://github.com/JetBrains/lets-plot/issues/334)] +- Draw geometry only once if layer has no aes mapping specified [[#73](https://github.com/JetBrains/lets-plot/issues/73)] +- map: calif.housing [[#140](https://github.com/JetBrains/lets-plot/issues/140)] +- Can't build plot: "Uncaught SyntaxError: Unexpected string" in a console [[#371](https://github.com/JetBrains/lets-plot/issues/371)] +- All scales should have the 'format' parameter [[#347](https://github.com/JetBrains/lets-plot/issues/347)]. +- Poor font rendering in Swing/Batik. Related to: [[#364](https://github.com/JetBrains/lets-plot/issues/364)] +- Exclude slf4j implementation from lets-plot-common [[#374](https://github.com/JetBrains/lets-plot/issues/374)] + ## [2.0.2] - 2021-04-13 ### Changed diff --git a/build.gradle b/build.gradle index 60a69a51a5e..b0da145700c 100644 --- a/build.gradle +++ b/build.gradle @@ -64,8 +64,8 @@ configurations { allprojects { group = 'org.jetbrains.lets-plot' - version = "2.0.4-alpha1" - project.ext.js_artifact_version = "2.0.4.dev1" + version = "2.0.3" + project.ext.js_artifact_version = "2.0.3" // see also: python-package/lets_plot/_version.py repositories { diff --git a/future_changes.md b/future_changes.md index 346604017ba..f99d3291a7b 100644 --- a/future_changes.md +++ b/future_changes.md @@ -1,24 +1,10 @@ -## [2.0.3] - 2021-??-?? +## [2.0.4] - 2021-??-?? ### Added -- In tooltip customization API: - - `layer_tooltips(variables)` - the new parameter `variables` defines a list of variable names, which values will be placed line by line in the general tooltip. - See: [Tooltip Customization](https://github.com/JetBrains/lets-plot/blob/master/docs/tooltips.md). ### Changed -- CDN: Lets-Plot JavaScript library is now served via [JSDELIVR](https://www.jsdelivr.com/?docs=gh) (was CDNJS): -> https://cdn.jsdelivr.net/gh/JetBrains/lets-plot@v2.0.3/js-package/distr/lets-plot.min.js ### Fixed -- Removed the last dependency on bintray JCenter ([commit](https://github.com/JetBrains/lets-plot/commit/7bcd38e000a4952b83269ef4ebac0b7d826dea6a)). -- geom_boxplot: should be possible to create boxplot without specifying x-series [[#325](https://github.com/JetBrains/lets-plot/issues/325)] -- geom_hline: graph plotted outside of coordinate plane visible part [[#334](https://github.com/JetBrains/lets-plot/issues/334)] -- Draw geometry only once if layer has no aes mapping specified [[#73](https://github.com/JetBrains/lets-plot/issues/73)] -- map: calif.housing [[#140](https://github.com/JetBrains/lets-plot/issues/140)] -- Can't build plot: "Uncaught SyntaxError: Unexpected string" in a console [[#371](https://github.com/JetBrains/lets-plot/issues/371)] -- All scales should have the 'format' parameter [[#347](https://github.com/JetBrains/lets-plot/issues/347)]. -- Poor font rendering in Swing/Batik. Related to: [[#364](https://github.com/JetBrains/lets-plot/issues/364)] -- Exclude slf4j implementation from lets-plot-common [[#374](https://github.com/JetBrains/lets-plot/issues/374)] \ No newline at end of file diff --git a/js-package/distr/lets-plot.js b/js-package/distr/lets-plot.js index f9c30e51b93..7b9bbf7211b 100644 --- a/js-package/distr/lets-plot.js +++ b/js-package/distr/lets-plot.js @@ -2442,7 +2442,7 @@ eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPAC /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory) {\n if (true)\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(/*! kotlin */ \"./kotlin-dce-dev/kotlin.js\"), __webpack_require__(/*! lets-plot-base-portable */ \"./kotlin-dce-dev/lets-plot-base-portable.js\"), __webpack_require__(/*! lets-plot-plot-builder-portable */ \"./kotlin-dce-dev/lets-plot-plot-builder-portable.js\"), __webpack_require__(/*! lets-plot-vis-svg-portable */ \"./kotlin-dce-dev/lets-plot-vis-svg-portable.js\"), __webpack_require__(/*! lets-plot-plot-base-portable */ \"./kotlin-dce-dev/lets-plot-plot-base-portable.js\"), __webpack_require__(/*! lets-plot-plot-common-portable */ \"./kotlin-dce-dev/lets-plot-plot-common-portable.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n else {}\n}(this, function (_, Kotlin, $module$lets_plot_base_portable, $module$lets_plot_plot_builder_portable, $module$lets_plot_vis_svg_portable, $module$lets_plot_plot_base_portable, $module$lets_plot_plot_common_portable) {\n 'use strict';\n var $$importsForInline$$ = _.$$importsForInline$$ || (_.$$importsForInline$$ = {});\n var replace = Kotlin.kotlin.text.replace_680rmw$;\n var json = $module$lets_plot_base_portable.jetbrains.datalore.base.json;\n var MutableMap = Kotlin.kotlin.collections.MutableMap;\n var throwCCE = Kotlin.throwCCE;\n var RuntimeException_init = Kotlin.kotlin.RuntimeException_init_pdl1vj$;\n var PlotContainerPortable = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.PlotContainerPortable;\n var listOf = Kotlin.kotlin.collections.listOf_mh5how$;\n var toString = Kotlin.toString;\n var ArrayList_init = Kotlin.kotlin.collections.ArrayList_init_287e2$;\n var DoubleVector = $module$lets_plot_base_portable.jetbrains.datalore.base.geometry.DoubleVector;\n var Unit = Kotlin.kotlin.Unit;\n var ValueProperty = $module$lets_plot_base_portable.jetbrains.datalore.base.observable.property.ValueProperty;\n var Kind_CLASS = Kotlin.Kind.CLASS;\n var DoubleRectangle = $module$lets_plot_base_portable.jetbrains.datalore.base.geometry.DoubleRectangle;\n var Kind_OBJECT = Kotlin.Kind.OBJECT;\n var addAll = Kotlin.kotlin.collections.addAll_ipc267$;\n var collectionSizeOrDefault = Kotlin.kotlin.collections.collectionSizeOrDefault_ba2ldo$;\n var ArrayList_init_0 = Kotlin.kotlin.collections.ArrayList_init_ww73n8$;\n var trimMargin = Kotlin.kotlin.text.trimMargin_rjktp$;\n var round = Kotlin.kotlin.math.round_14dthe$;\n var numberToInt = Kotlin.numberToInt;\n var joinToString = Kotlin.kotlin.collections.joinToString_fmv235$;\n var trimIndent = Kotlin.kotlin.text.trimIndent_pdl1vz$;\n var RuntimeException = Kotlin.kotlin.RuntimeException;\n var contains = Kotlin.kotlin.text.contains_li3zpu$;\n var random = $module$lets_plot_base_portable.jetbrains.datalore.base.random;\n var jsObject = $module$lets_plot_base_portable.jetbrains.datalore.base.jsObject;\n var IllegalArgumentException_init = Kotlin.kotlin.IllegalArgumentException_init_pdl1vj$;\n var PlotFacets = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.PlotFacets;\n var Map = Kotlin.kotlin.collections.Map;\n var Regex_init = Kotlin.kotlin.text.Regex_init_61zpoe$;\n var ensureNotNull = Kotlin.ensureNotNull;\n var toDouble = Kotlin.kotlin.text.toDouble_pdl1vz$;\n var Math_0 = Math;\n var IllegalStateException_init = Kotlin.kotlin.IllegalStateException_init_pdl1vj$;\n var zip = Kotlin.kotlin.collections.zip_45mdf7$;\n var DoubleRectangle_init = $module$lets_plot_base_portable.jetbrains.datalore.base.geometry.DoubleRectangle_init_6y0v78$;\n var split = Kotlin.kotlin.text.split_ip8yn$;\n var indexOf = Kotlin.kotlin.text.indexOf_l5u8uk$;\n var Pair = Kotlin.kotlin.Pair;\n var logging = $module$lets_plot_base_portable.jetbrains.datalore.base.logging;\n var getKClass = Kotlin.getKClass;\n var SvgToString = $module$lets_plot_vis_svg_portable.jetbrains.datalore.vis.svgToString.SvgToString;\n var ArrowSpec$End = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.util.ArrowSpec.End;\n var ArrowSpec$Type = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.util.ArrowSpec.Type;\n var toRadians = $module$lets_plot_base_portable.jetbrains.datalore.base.math.toRadians_14dthe$;\n var ArrowSpec = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.util.ArrowSpec;\n var equals = Kotlin.equals;\n var base = $module$lets_plot_base_portable.jetbrains.datalore.base.gcommon.base;\n var DataFrame$Builder = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.DataFrame.Builder;\n var data = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.data;\n var until = Kotlin.kotlin.ranges.until_dqglrj$;\n var toSet = Kotlin.kotlin.collections.toSet_7wnvza$;\n var HashMap_init = Kotlin.kotlin.collections.HashMap_init_q3lmfv$;\n var filterNotNull = Kotlin.kotlin.collections.filterNotNull_m3lr2h$;\n var toMutableSet = Kotlin.kotlin.collections.toMutableSet_7wnvza$;\n var DataFrame$DataFrame$Builder_init = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.DataFrame.Builder_init;\n var emptyMap = Kotlin.kotlin.collections.emptyMap_q3lmfv$;\n var List = Kotlin.kotlin.collections.List;\n var numberToDouble = Kotlin.numberToDouble;\n var Iterable = Kotlin.kotlin.collections.Iterable;\n var NumberFormatException = Kotlin.kotlin.NumberFormatException;\n var checkIndexOverflow = Kotlin.kotlin.collections.checkIndexOverflow_za3lpa$;\n var coord = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.coord;\n var startsWith = Kotlin.kotlin.text.startsWith_7epoxm$;\n var removePrefix = Kotlin.kotlin.text.removePrefix_gsj5wt$;\n var emptyList = Kotlin.kotlin.collections.emptyList_287e2$;\n var to = Kotlin.kotlin.to_ujzrz7$;\n var getCallableRef = Kotlin.getCallableRef;\n var emptySet = Kotlin.kotlin.collections.emptySet_287e2$;\n var flatten = Kotlin.kotlin.collections.flatten_u0ad8z$;\n var plus = Kotlin.kotlin.collections.plus_mydzjv$;\n var mutableMapOf = Kotlin.kotlin.collections.mutableMapOf_qfcya0$;\n var DataFrame$DataFrame$Builder_init_0 = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.DataFrame.Builder_init_dhhkv7$;\n var contains_0 = Kotlin.kotlin.collections.contains_2ws7j4$;\n var minus = Kotlin.kotlin.collections.minus_khz7k3$;\n var plus_0 = Kotlin.kotlin.collections.plus_khz7k3$;\n var plus_1 = Kotlin.kotlin.collections.plus_iwxh38$;\n var mapCapacity = Kotlin.kotlin.collections.mapCapacity_za3lpa$;\n var coerceAtLeast = Kotlin.kotlin.ranges.coerceAtLeast_dqglrj$;\n var LinkedHashMap_init = Kotlin.kotlin.collections.LinkedHashMap_init_bwtc7$;\n var LinkedHashMap_init_0 = Kotlin.kotlin.collections.LinkedHashMap_init_q3lmfv$;\n var LinkedHashSet_init = Kotlin.kotlin.collections.LinkedHashSet_init_287e2$;\n var ArrayList_init_1 = Kotlin.kotlin.collections.ArrayList_init_mqih57$;\n var FacetGrid = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.facet.FacetGrid;\n var HashSet_init = Kotlin.kotlin.collections.HashSet_init_287e2$;\n var toList = Kotlin.kotlin.collections.toList_7wnvza$;\n var take = Kotlin.kotlin.collections.take_ba2ldo$;\n var FacetWrap = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.facet.FacetWrap;\n var FacetWrap$Direction = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.facet.FacetWrap.Direction;\n var StringFormat = $module$lets_plot_base_portable.jetbrains.datalore.base.stringFormat.StringFormat;\n var IllegalStateException = Kotlin.kotlin.IllegalStateException;\n var IllegalArgumentException = Kotlin.kotlin.IllegalArgumentException;\n var isBlank = Kotlin.kotlin.text.isBlank_gw00vp$;\n var Aes = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.Aes;\n var spatial = $module$lets_plot_base_portable.jetbrains.datalore.base.spatial;\n var DataFrame$Variable = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.DataFrame.Variable;\n var SimpleFeature$Consumer = $module$lets_plot_base_portable.jetbrains.datalore.base.spatial.SimpleFeature.Consumer;\n var firstOrNull = Kotlin.kotlin.collections.firstOrNull_7wnvza$;\n var asSequence = Kotlin.kotlin.collections.asSequence_7wnvza$;\n var flatten_0 = Kotlin.kotlin.sequences.flatten_d9bjs1$;\n var union = $module$lets_plot_base_portable.jetbrains.datalore.base.spatial.union_86o20w$;\n var convertToGeoRectangle = $module$lets_plot_base_portable.jetbrains.datalore.base.spatial.convertToGeoRectangle_i3vl8m$;\n var boundingBox = $module$lets_plot_base_portable.jetbrains.datalore.base.typedGeometry.boundingBox_gyuce3$;\n var limit = $module$lets_plot_base_portable.jetbrains.datalore.base.typedGeometry.limit_106pae$;\n var limit_0 = $module$lets_plot_base_portable.jetbrains.datalore.base.typedGeometry.limit_lddjmn$;\n var get_left = $module$lets_plot_base_portable.jetbrains.datalore.base.typedGeometry.get_left_h9e6jg$;\n var get_right = $module$lets_plot_base_portable.jetbrains.datalore.base.typedGeometry.get_right_h9e6jg$;\n var get_top = $module$lets_plot_base_portable.jetbrains.datalore.base.typedGeometry.get_top_h9e6jg$;\n var get_bottom = $module$lets_plot_base_portable.jetbrains.datalore.base.typedGeometry.get_bottom_h9e6jg$;\n var mapOf = Kotlin.kotlin.collections.mapOf_qfcya0$;\n var Result = Kotlin.kotlin.Result;\n var Throwable = Error;\n var createFailure = Kotlin.kotlin.createFailure_tcv7n7$;\n var Any = Object;\n var Collection = Kotlin.kotlin.collections.Collection;\n var minus_0 = Kotlin.kotlin.collections.minus_q4559j$;\n var GeomKind = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.GeomKind;\n var listOf_0 = Kotlin.kotlin.collections.listOf_i5x0yv$;\n var base_0 = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base;\n var removeAll = Kotlin.kotlin.collections.removeAll_qafx1e$;\n var GeomInteractionBuilder = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.interact.GeomInteractionBuilder;\n var GeomTargetLocator$LookupStrategy = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.interact.GeomTargetLocator.LookupStrategy;\n var geom = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.geom;\n var sampling = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.sampling;\n var PosProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.PosProvider;\n var pos = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.pos;\n var mapOf_0 = Kotlin.kotlin.collections.mapOf_x2b85n$;\n var GeomKind$values = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.GeomKind.values;\n var GeomProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.geom.GeomProvider;\n var CrossBarGeom = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.CrossBarGeom;\n var PointRangeGeom = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.PointRangeGeom;\n var BoxplotGeom = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.BoxplotGeom;\n var StepGeom = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.StepGeom;\n var SegmentGeom = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.SegmentGeom;\n var PathGeom = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.PathGeom;\n var PointGeom = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.PointGeom;\n var TextGeom = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.TextGeom;\n var ImageGeom = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.geom.ImageGeom;\n var GuideOptions = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.GuideOptions;\n var LegendOptions = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.LegendOptions;\n var Runnable = $module$lets_plot_base_portable.jetbrains.datalore.base.function.Runnable;\n var ColorBarOptions = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.ColorBarOptions;\n var HashSet_init_0 = Kotlin.kotlin.collections.HashSet_init_mqih57$;\n var stat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat;\n var minus_1 = Kotlin.kotlin.collections.minus_uk696c$;\n var TooltipSpecification = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.tooltip.TooltipSpecification;\n var VarBinding = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.VarBinding;\n var first = Kotlin.kotlin.collections.first_2p1efm$;\n var LivemapConstants$DisplayMode = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.livemap.LivemapConstants.DisplayMode;\n var LivemapConstants$Projection = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.livemap.LivemapConstants.Projection;\n var LiveMapOptions = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.livemap.LiveMapOptions;\n var joinToString_0 = Kotlin.kotlin.collections.joinToString_cgipc5$;\n var LivemapConstants$DisplayMode$valueOf = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.livemap.LivemapConstants.DisplayMode.valueOf_61zpoe$;\n var LivemapConstants$DisplayMode$values = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.livemap.LivemapConstants.DisplayMode.values;\n var Exception = Kotlin.kotlin.Exception;\n var LivemapConstants$Projection$valueOf = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.livemap.LivemapConstants.Projection.valueOf_61zpoe$;\n var LivemapConstants$Projection$values = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.livemap.LivemapConstants.Projection.values;\n var checkCountOverflow = Kotlin.kotlin.collections.checkCountOverflow_za3lpa$;\n var last = Kotlin.kotlin.collections.last_2p1efm$;\n var ClosedRange = $module$lets_plot_base_portable.jetbrains.datalore.base.gcommon.collect.ClosedRange;\n var numberToLong = Kotlin.numberToLong;\n var firstOrNull_0 = Kotlin.kotlin.collections.firstOrNull_2p1efm$;\n var dropLast = Kotlin.kotlin.collections.dropLast_8ujjk8$;\n var last_0 = Kotlin.kotlin.collections.last_us0mfu$;\n var toList_0 = Kotlin.kotlin.collections.toList_us0mfu$;\n var MutableList = Kotlin.kotlin.collections.MutableList;\n var getPropertyCallableRef = Kotlin.getPropertyCallableRef;\n var PlotAssembler = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.PlotAssembler;\n var GeomLayerBuilder = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.GeomLayerBuilder;\n var distinct = Kotlin.kotlin.collections.distinct_7wnvza$;\n var collect = $module$lets_plot_base_portable.jetbrains.datalore.base.gcommon.collect;\n var TypedScaleProviderMap = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.TypedScaleProviderMap;\n var toMap = Kotlin.kotlin.collections.toMap_6hr0sd$;\n var setOf = Kotlin.kotlin.collections.setOf_i5x0yv$;\n var scale = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale;\n var getValue = Kotlin.kotlin.collections.getValue_t9ocha$;\n var data_0 = $module$lets_plot_plot_common_portable.jetbrains.datalore.plot.common.data;\n var TypedScaleMap = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.assemble.TypedScaleMap;\n var HashMap_init_0 = Kotlin.kotlin.collections.HashMap_init_73mtqc$;\n var mapper = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.mapper;\n var AlphaMapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.AlphaMapperProvider;\n var SizeMapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.SizeMapperProvider;\n var Color = $module$lets_plot_base_portable.jetbrains.datalore.base.values.Color;\n var ColorGradientMapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.ColorGradientMapperProvider;\n var ColorGradient2MapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.ColorGradient2MapperProvider;\n var ColorHueMapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.ColorHueMapperProvider;\n var GreyscaleLightnessMapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.GreyscaleLightnessMapperProvider;\n var ColorBrewerMapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.ColorBrewerMapperProvider;\n var SizeAreaMapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.SizeAreaMapperProvider;\n var ScaleProviderBuilder = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.ScaleProviderBuilder;\n var MapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.MapperProvider;\n var text = $module$lets_plot_plot_common_portable.jetbrains.datalore.plot.common.text;\n var transform = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.scale.transform;\n var DateTimeBreaksGen = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.scale.transform.DateTimeBreaksGen;\n var IdentityDiscreteMapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.IdentityDiscreteMapperProvider;\n var scale_0 = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.scale;\n var IdentityMapperProvider = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.scale.provider.IdentityMapperProvider;\n var TransformKind = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.scale.transform.TransformKind;\n var Enum = Kotlin.kotlin.Enum;\n var throwISE = Kotlin.throwISE;\n var EnumInfoImpl_init = $module$lets_plot_base_portable.jetbrains.datalore.base.enums.EnumInfoImpl;\n var Bin2dStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.Bin2dStat;\n var ContourStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.ContourStat;\n var ContourfStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.ContourfStat;\n var BoxplotStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.BoxplotStat;\n var SmoothStat$Method = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.SmoothStat.Method;\n var SmoothStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.SmoothStat;\n var SmoothStat$Companion$DEF_SAMPLING_SEED = Kotlin.Long.fromInt(37);\n var CorrelationStat$Method = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.CorrelationStat.Method;\n var CorrelationStat$Type = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.CorrelationStat.Type;\n var CorrelationStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.CorrelationStat;\n var DensityStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.DensityStat;\n var AbstractDensity2dStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.AbstractDensity2dStat;\n var Density2dfStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.Density2dfStat;\n var Density2dStat = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.stat.Density2dStat;\n var TooltipSpecification$TooltipProperties = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.tooltip.TooltipSpecification.TooltipProperties;\n var substringAfter = Kotlin.kotlin.text.substringAfter_j4ogox$;\n var TooltipLine = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.tooltip.TooltipLine;\n var DataFrameValue = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.tooltip.DataFrameValue;\n var MappingValue = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.tooltip.MappingValue;\n var ConstantValue = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.tooltip.ConstantValue;\n var removeSurrounding = Kotlin.kotlin.text.removeSurrounding_90ijwr$;\n var substringBefore = Kotlin.kotlin.text.substringBefore_j4ogox$;\n var TooltipAnchor$VerticalAnchor = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.interact.TooltipAnchor.VerticalAnchor;\n var TooltipAnchor$HorizontalAnchor = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.interact.TooltipAnchor.HorizontalAnchor;\n var TooltipAnchor = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.interact.TooltipAnchor;\n var values = $module$lets_plot_base_portable.jetbrains.datalore.base.values;\n var toMutableMap = Kotlin.kotlin.collections.toMutableMap_abgq59$;\n var StringBuilder_init = Kotlin.kotlin.text.StringBuilder_init_za3lpa$;\n var trim = Kotlin.kotlin.text.trim_gw00vp$;\n var Function = $module$lets_plot_base_portable.jetbrains.datalore.base.function.Function;\n var NamedLineType = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.render.linetype.NamedLineType;\n var LineType = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.render.linetype.LineType;\n var NamedLineType$values = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.render.linetype.NamedLineType.values;\n var PointShape = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.render.point.PointShape;\n var point = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.render.point;\n var NamedShape = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.render.point.NamedShape;\n var NamedShape$values = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.render.point.NamedShape.values;\n var roundToInt = Kotlin.kotlin.math.roundToInt_yrwdxr$;\n var abs = Kotlin.kotlin.math.abs_za3lpa$;\n var AxisTheme = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.theme.AxisTheme;\n var LegendPosition = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.guide.LegendPosition;\n var LegendJustification = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.guide.LegendJustification;\n var LegendDirection = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.guide.LegendDirection;\n var LegendTheme = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.theme.LegendTheme;\n var Theme = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.theme.Theme;\n var DefaultTheme = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.theme.DefaultTheme;\n var Kind_INTERFACE = Kotlin.Kind.INTERFACE;\n var hashCode = Kotlin.hashCode;\n var copyToArray = Kotlin.kotlin.collections.copyToArray;\n var isFinite = Kotlin.kotlin.isFinite_yrwdxr$;\n var StatContext = $module$lets_plot_plot_base_portable.jetbrains.datalore.plot.base.StatContext;\n var Pair_0 = $module$lets_plot_base_portable.jetbrains.datalore.base.values.Pair;\n var data_1 = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.data;\n var GroupingContext = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.data.GroupingContext;\n var plus_2 = Kotlin.kotlin.collections.plus_xfiyik$;\n var listOfNotNull = Kotlin.kotlin.collections.listOfNotNull_issdgt$;\n var PointSampling = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.sampling.PointSampling;\n var GroupAwareSampling = $module$lets_plot_plot_builder_portable.jetbrains.datalore.plot.builder.sampling.GroupAwareSampling;\n var Set = Kotlin.kotlin.collections.Set;\n MonolithicCommon$PlotsBuildResult$Error.prototype = Object.create(MonolithicCommon$PlotsBuildResult.prototype);\n MonolithicCommon$PlotsBuildResult$Error.prototype.constructor = MonolithicCommon$PlotsBuildResult$Error;\n MonolithicCommon$PlotsBuildResult$Success.prototype = Object.create(MonolithicCommon$PlotsBuildResult.prototype);\n MonolithicCommon$PlotsBuildResult$Success.prototype.constructor = MonolithicCommon$PlotsBuildResult$Success;\n ArrowSpecConfig.prototype = Object.create(OptionsAccessor.prototype);\n ArrowSpecConfig.prototype.constructor = ArrowSpecConfig;\n BunchConfig.prototype = Object.create(OptionsAccessor.prototype);\n BunchConfig.prototype.constructor = BunchConfig;\n CoordConfig.prototype = Object.create(OptionsAccessor.prototype);\n CoordConfig.prototype.constructor = CoordConfig;\n FacetConfig.prototype = Object.create(OptionsAccessor.prototype);\n FacetConfig.prototype.constructor = FacetConfig;\n CoordinatesCollector$PointCoordinatesCollector.prototype = Object.create(CoordinatesCollector.prototype);\n CoordinatesCollector$PointCoordinatesCollector.prototype.constructor = CoordinatesCollector$PointCoordinatesCollector;\n CoordinatesCollector$PathCoordinatesCollector.prototype = Object.create(CoordinatesCollector.prototype);\n CoordinatesCollector$PathCoordinatesCollector.prototype.constructor = CoordinatesCollector$PathCoordinatesCollector;\n CoordinatesCollector$BoundaryCoordinatesCollector.prototype = Object.create(CoordinatesCollector.prototype);\n CoordinatesCollector$BoundaryCoordinatesCollector.prototype.constructor = CoordinatesCollector$BoundaryCoordinatesCollector;\n CoordinatesCollector$BboxCoordinatesCollector.prototype = Object.create(CoordinatesCollector.prototype);\n CoordinatesCollector$BboxCoordinatesCollector.prototype.constructor = CoordinatesCollector$BboxCoordinatesCollector;\n GeomProtoClientSide.prototype = Object.create(GeomProto.prototype);\n GeomProtoClientSide.prototype.constructor = GeomProtoClientSide;\n GuideConfig.prototype = Object.create(OptionsAccessor.prototype);\n GuideConfig.prototype.constructor = GuideConfig;\n GuideConfig$GuideNoneConfig.prototype = Object.create(GuideConfig.prototype);\n GuideConfig$GuideNoneConfig.prototype.constructor = GuideConfig$GuideNoneConfig;\n GuideConfig$LegendConfig.prototype = Object.create(GuideConfig.prototype);\n GuideConfig$LegendConfig.prototype.constructor = GuideConfig$LegendConfig;\n GuideConfig$ColorBarConfig.prototype = Object.create(GuideConfig.prototype);\n GuideConfig$ColorBarConfig.prototype.constructor = GuideConfig$ColorBarConfig;\n LayerConfig.prototype = Object.create(OptionsAccessor.prototype);\n LayerConfig.prototype.constructor = LayerConfig;\n PlotConfig.prototype = Object.create(OptionsAccessor.prototype);\n PlotConfig.prototype.constructor = PlotConfig;\n PlotConfigClientSide.prototype = Object.create(PlotConfig.prototype);\n PlotConfigClientSide.prototype.constructor = PlotConfigClientSide;\n PosConfig.prototype = Object.create(OptionsAccessor.prototype);\n PosConfig.prototype.constructor = PosConfig;\n ScaleConfig.prototype = Object.create(OptionsAccessor.prototype);\n ScaleConfig.prototype.constructor = ScaleConfig;\n ScaleTransformConfig.prototype = Object.create(OptionsAccessor.prototype);\n ScaleTransformConfig.prototype.constructor = ScaleTransformConfig;\n StatKind.prototype = Object.create(Enum.prototype);\n StatKind.prototype.constructor = StatKind;\n TooltipConfig.prototype = Object.create(OptionsAccessor.prototype);\n TooltipConfig.prototype.constructor = TooltipConfig;\n AxisThemeConfig.prototype = Object.create(OptionsAccessor.prototype);\n AxisThemeConfig.prototype.constructor = AxisThemeConfig;\n LegendThemeConfig.prototype = Object.create(OptionsAccessor.prototype);\n LegendThemeConfig.prototype.constructor = LegendThemeConfig;\n ThemeConfig$OneTileTheme.prototype = Object.create(ThemeConfig$ConfiguredTheme.prototype);\n ThemeConfig$OneTileTheme.prototype.constructor = ThemeConfig$OneTileTheme;\n ThemeConfig$MultiTileTheme.prototype = Object.create(ThemeConfig$ConfiguredTheme.prototype);\n ThemeConfig$MultiTileTheme.prototype.constructor = ThemeConfig$MultiTileTheme;\n ViewElementConfig.prototype = Object.create(OptionsAccessor.prototype);\n ViewElementConfig.prototype.constructor = ViewElementConfig;\n PlotSpecTransformUtil$TargetSpec.prototype = Object.create(Enum.prototype);\n PlotSpecTransformUtil$TargetSpec.prototype.constructor = PlotSpecTransformUtil$TargetSpec;\n PlotConfigServerSide.prototype = Object.create(PlotConfig.prototype);\n PlotConfigServerSide.prototype.constructor = PlotConfigServerSide;\n function parsePlotSpec(spec) {\n var it = replace(spec, \"'\", '\"');\n var tmp$;\n return Kotlin.isType(tmp$ = json.JsonSupport.parseJson_61zpoe$(it), MutableMap) ? tmp$ : throwCCE();\n }\n function MonolithicCommon() {\n MonolithicCommon_instance = this;\n }\n MonolithicCommon.prototype.buildSvgImagesFromRawSpecs_k2v8cf$ = function (plotSpec, plotSize, svgToString, computationMessagesHandler) {\n var tmp$, tmp$_0;\n var plotSpec_0 = this.processRawSpecs_lqxyja$(plotSpec, false);\n var buildResult = this.buildPlotsFromProcessedSpecs_rim63o$(plotSpec_0, plotSize, null);\n if (buildResult.isError) {\n var errorMessage = (Kotlin.isType(tmp$ = buildResult, MonolithicCommon$PlotsBuildResult$Error) ? tmp$ : throwCCE()).error;\n throw RuntimeException_init(errorMessage);\n }var success = Kotlin.isType(tmp$_0 = buildResult, MonolithicCommon$PlotsBuildResult$Success) ? tmp$_0 : throwCCE();\n var $receiver = success.buildInfos;\n var destination = ArrayList_init();\n var tmp$_1;\n tmp$_1 = $receiver.iterator();\n while (tmp$_1.hasNext()) {\n var element = tmp$_1.next();\n var list = element.computationMessages;\n addAll(destination, list);\n }\n var computationMessages = destination;\n if (!computationMessages.isEmpty()) {\n computationMessagesHandler(computationMessages);\n }var $receiver_0 = success.buildInfos;\n var destination_0 = ArrayList_init_0(collectionSizeOrDefault($receiver_0, 10));\n var tmp$_2;\n tmp$_2 = $receiver_0.iterator();\n while (tmp$_2.hasNext()) {\n var item = tmp$_2.next();\n var tmp$_3 = destination_0.add_11rb$;\n var assembler = item.plotAssembler;\n var plot = assembler.createPlot();\n var plotContainer = new PlotContainerPortable(plot, item.size);\n plotContainer.ensureContentBuilt();\n tmp$_3.call(destination_0, plotContainer.svg);\n }\n var destination_1 = ArrayList_init_0(collectionSizeOrDefault(destination_0, 10));\n var tmp$_4;\n tmp$_4 = destination_0.iterator();\n while (tmp$_4.hasNext()) {\n var item_0 = tmp$_4.next();\n destination_1.add_11rb$(svgToString.render_5lup6a$(item_0));\n }\n return destination_1;\n };\n MonolithicCommon.prototype.buildPlotsFromProcessedSpecs_rim63o$ = function (plotSpec, plotSize, plotMaxWidth) {\n var tmp$;\n this.throwTestingErrors_0();\n PlotConfig$Companion_getInstance().assertPlotSpecOrErrorMessage_x7u0o8$(plotSpec);\n if (PlotConfig$Companion_getInstance().isFailure_x7u0o8$(plotSpec)) {\n var errorMessage = PlotConfig$Companion_getInstance().getErrorMessage_x7u0o8$(plotSpec);\n return new MonolithicCommon$PlotsBuildResult$Error(errorMessage);\n }if (PlotConfig$Companion_getInstance().isPlotSpec_bkhwtg$(plotSpec))\n tmp$ = new MonolithicCommon$PlotsBuildResult$Success(listOf(this.buildSinglePlotFromProcessedSpecs_0(plotSpec, plotSize, plotMaxWidth)));\n else if (PlotConfig$Companion_getInstance().isGGBunchSpec_bkhwtg$(plotSpec))\n tmp$ = this.buildGGBunchFromProcessedSpecs_0(plotSpec);\n else\n throw RuntimeException_init('Unexpected plot spec kind: ' + toString(PlotConfig$Companion_getInstance().specKind_bkhwtg$(plotSpec)));\n return tmp$;\n };\n MonolithicCommon.prototype.buildGGBunchFromProcessedSpecs_0 = function (bunchSpec) {\n var tmp$, tmp$_0;\n var bunchConfig = new BunchConfig(bunchSpec);\n if (bunchConfig.bunchItems.isEmpty())\n return new MonolithicCommon$PlotsBuildResult$Error('No plots in the bunch');\n var buildInfos = ArrayList_init();\n tmp$ = bunchConfig.bunchItems.iterator();\n while (tmp$.hasNext()) {\n var bunchItem = tmp$.next();\n var plotSpec = Kotlin.isType(tmp$_0 = bunchItem.featureSpec, MutableMap) ? tmp$_0 : throwCCE();\n var buildInfo = this.buildSinglePlotFromProcessedSpecs_0(plotSpec, PlotSizeHelper_getInstance().bunchItemSize_6ixfn5$(bunchItem), null);\n buildInfo = new MonolithicCommon$PlotBuildInfo(buildInfo.plotAssembler, buildInfo.processedPlotSpec, new DoubleVector(bunchItem.x, bunchItem.y), buildInfo.size, buildInfo.computationMessages);\n buildInfos.add_11rb$(buildInfo);\n }\n return new MonolithicCommon$PlotsBuildResult$Success(buildInfos);\n };\n function MonolithicCommon$buildSinglePlotFromProcessedSpecs$lambda(closure$computationMessages) {\n return function (it) {\n closure$computationMessages.addAll_brywnq$(it);\n return Unit;\n };\n }\n MonolithicCommon.prototype.buildSinglePlotFromProcessedSpecs_0 = function (plotSpec, plotSize, plotMaxWidth) {\n var computationMessages = ArrayList_init();\n var config = PlotConfigClientSide$Companion_getInstance().create_vb0rb2$(plotSpec, MonolithicCommon$buildSinglePlotFromProcessedSpecs$lambda(computationMessages));\n var preferredSize = new ValueProperty(PlotSizeHelper_getInstance().singlePlotSize_k8r1k3$(plotSpec, plotSize, plotMaxWidth, config.facets, config.containsLiveMap));\n var assembler = this.createPlotAssembler_rwfsgt$(config);\n return new MonolithicCommon$PlotBuildInfo(assembler, plotSpec, DoubleVector.Companion.ZERO, preferredSize, computationMessages);\n };\n MonolithicCommon.prototype.createPlotAssembler_rwfsgt$ = function (config) {\n return PlotConfigClientSideUtil_getInstance().createPlotAssembler_6u1zvq$(config);\n };\n MonolithicCommon.prototype.throwTestingErrors_0 = function () {\n };\n MonolithicCommon.prototype.processRawSpecs_lqxyja$ = function (plotSpec, frontendOnly) {\n var tmp$;\n PlotConfig$Companion_getInstance().assertPlotSpecOrErrorMessage_x7u0o8$(plotSpec);\n if (PlotConfig$Companion_getInstance().isFailure_x7u0o8$(plotSpec)) {\n return plotSpec;\n }if (frontendOnly) {\n tmp$ = plotSpec;\n } else {\n tmp$ = PlotConfigServerSide$Companion_getInstance().processTransform_2wxo1b$(plotSpec);\n }\n var plotSpec_0 = tmp$;\n if (PlotConfig$Companion_getInstance().isFailure_x7u0o8$(plotSpec_0)) {\n return plotSpec_0;\n }return PlotConfigClientSide$Companion_getInstance().processTransform_2wxo1b$(plotSpec_0);\n };\n function MonolithicCommon$PlotsBuildResult() {\n this.isError = Kotlin.isType(this, MonolithicCommon$PlotsBuildResult$Error);\n }\n function MonolithicCommon$PlotsBuildResult$Error(error) {\n MonolithicCommon$PlotsBuildResult.call(this);\n this.error = error;\n }\n MonolithicCommon$PlotsBuildResult$Error.$metadata$ = {\n kind: Kind_CLASS,\n simpleName: 'Error',\n interfaces: [MonolithicCommon$PlotsBuildResult]\n };\n function MonolithicCommon$PlotsBuildResult$Success(buildInfos) {\n MonolithicCommon$PlotsBuildResult.call(this);\n this.buildInfos = buildInfos;\n }\n MonolithicCommon$PlotsBuildResult$Success.$metadata$ = {\n kind: Kind_CLASS,\n simpleName: 'Success',\n interfaces: [MonolithicCommon$PlotsBuildResult]\n };\n MonolithicCommon$PlotsBuildResult.$metadata$ = {\n kind: Kind_CLASS,\n simpleName: 'PlotsBuildResult',\n interfaces: []\n };\n function MonolithicCommon$PlotBuildInfo(plotAssembler, processedPlotSpec, origin, size, computationMessages) {\n this.plotAssembler = plotAssembler;\n this.processedPlotSpec = processedPlotSpec;\n this.origin = origin;\n this.size = size;\n this.computationMessages = computationMessages;\n }\n MonolithicCommon$PlotBuildInfo.prototype.bounds = function () {\n return new DoubleRectangle(this.origin, this.size.get());\n };\n MonolithicCommon$PlotBuildInfo.$metadata$ = {\n kind: Kind_CLASS,\n simpleName: 'PlotBuildInfo',\n interfaces: []\n };\n MonolithicCommon.$metadata$ = {\n kind: Kind_OBJECT,\n simpleName: 'MonolithicCommon',\n interfaces: []\n };\n var MonolithicCommon_instance = null;\n function MonolithicCommon_getInstance() {\n if (MonolithicCommon_instance === null) {\n new MonolithicCommon();\n }return MonolithicCommon_instance;\n }\n function PlotHtmlExport() {\n PlotHtmlExport_instance = this;\n }\n PlotHtmlExport.prototype.buildHtmlFromRawSpecs_dmb0ma$ = function (plotSpec, scriptUrl, iFrame, plotSize) {\n if (iFrame === void 0)\n iFrame = false;\n if (plotSize === void 0)\n plotSize = null;\n var tmp$, tmp$_0;\n var configureHtml = PlotHtmlHelper_getInstance().getStaticConfigureHtml_61zpoe$(scriptUrl);\n var displayHtml = PlotHtmlHelper_getInstance().getStaticDisplayHtmlForRawSpec_xfa7ld$(plotSpec, plotSize);\n if (iFrame) {\n tmp$ = '\\n